%##%%####*+++**++===###################%#######################%####%
%##%%%%%%%##*#**+==+*###%#%###########%#############################%
%###%%%##++*#**+++====*#%############%##############################%
%##%*####*######*+===-=+#############%##%####%#%##%%%%####%#%###%%%#%
%#%%#+*##*#######*++====+####################%##%###%%##%%##%#####%#%
%#%#+==%%###****++++*#######%#########%####%#%#####%#%%#%%##%#####%#%
%#%#+==#%%%%############%%##################%%###%%#%%%#%#%###%%%%%#%
%%%*===*%#%%##%%%%####%%%###################%##%####%#%%%##%#######%%
%%#*===#%#%@####%##%%#################%#####%##%###%%##%#########%##%
%%#*+-=*%%%%*###%###%#%########################%####################%
%%#*+-=*#%%%*#######################################################%
=+**+==*#%%%####%###################################################%
*===++***#%%#%##%%##############%######%############################%
%%####%###***#%%%%##################################################%
##%#################################################################%
*******************#*+==++******************************************#
*++++++++++++=-.**+:....-==+++++++++++++++++++++++++++++++++++++++++*
===-----=+=-:::.===+==:.:=-+++=-------========-:---=++++=---:-======+
=========+=:--:-:-=-::--::::=+*+=====-::==*---..=====-======..---*=-=
*++*=:-=++=---:=-=-++=-=+=::+++#*+***++++=-::----.--=:-=-:.------=+*#
##*=:-=+==----==--:++-----=:-==++++*###**#+=+*****####%%%%%%%@@@@@@@@
*+*+.::--------++++#++**###%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
****+++++**+*+*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@